package org.samples.filter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.samples.model.ExamUser;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class RoleInterceptor implements HandlerInterceptor {

	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {

	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {

	}

	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		ExamUser user = (ExamUser) arg0.getSession().getAttribute("user");
		if(arg0.getRequestURI().contains("/teacher")){
			if(user.getExamUserRole().getRole().getRoleId() == 2 || user.getExamUserRole().getRole().getRoleId() == 1){
				return true;
			}else{
				arg1.sendRedirect(arg0.getContextPath() + "/student/subjects");
			}
		}else if(arg0.getRequestURI().contains("/student")){
			if(user.getExamUserRole().getRole().getRoleId() == 3 || user.getExamUserRole().getRole().getRoleId() == 1){
				return true;
			}else{
				arg1.sendRedirect(arg0.getContextPath() + "/teacher/toManageStudent");
			}
		}
		return true;
	}

}
